// Ball.h

// Objekt sveta reprezentujuci loptu 


#ifndef BALL_H
#define BALL_H

#include "Player/World/Movable.h"
//#include "Common/World/Point.h"
//#include "Common/World/Vector.h"
#include "Common/Protocol/ParseStructs.h"


// Objekt sveta reprezentujuci loptu
class Ball : public Movable
{
	//
	bool valid;
	// Posledna pozicia, na ktorej sme videli loptu
	Point lastSeenPos;
	// Cas, kedy sme naposledy videli loptu
	int lastSeenTime;

public:
	// Konstruktor
	Ball(World* w);
	// Kopirovaci konstruktor
	Ball(const Ball&);
	// Destruktor
	virtual ~Ball();
	// Operator priradenia
	virtual Ball& operator =(const Ball&);
	
	// Metody

	bool IsValid() const
	{ 
		return valid;
	}
	void SetValid(bool v = true)
	{
		valid = v;
	}

	void SetLastSeenPosition(Point pos)
	{
		lastSeenPos = pos; 
	}

	// Prepoveda stav lopty v dalsom kroku
	void Step();

	// Vypocita poziciu, rychlost, ... lopty
	void Recalculate(const SENSE_BODY* sb, const VISUAL_INFO* vi);
	
};

#endif // BALL_H
